const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
let  WEBPACK_ENV         = process.env.WEBPACK_ENV || 'dev';
console.log(WEBPACK_ENV);
module.exports = {
  entry: './src/app.jsx',
  output: {
    path: path.resolve(__dirname, 'dist'), //webpack最后要打包的文件放到那个位置
    publicPath: WEBPACK_ENV === 'dev' 
    ? '/dist/' : '//s.admin.tomystery.xin/admin-fe/dist/',
    filename: 'js/app.js'
  },
  resolve: {
    alias: {
      page: path.resolve(__dirname, 'src/page'),
      component: path.resolve(__dirname, 'src/component'),
      util: path.resolve(__dirname, 'src/util'),
      service: path.resolve(__dirname, 'src/service')
    }
  },

  module: {
    rules: [
      //react语法的处理
      {
        test: /\.jsx$/,
        exclude: /(node_modules)/, //exclude意思是对这里面的文件不作处理
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['env', 'react'] //自动按照环境来打包，比如说在浏览器环境还是node环境都可以配置,加的这个react是babel-preset-react
          }
        }

      },
      //css文件的处理
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      },
      //sass文件的处理
      {
        test: /\.scss$/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: ['css-loader', 'sass-loader']
        })
      },
      //图片的处理
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192,
              name: 'resource/[name].[ext]' //name用来存放地址的
            }
          }
        ]
      },
      //字体图标的配置
      {
        test: /\.(woff|woff2|eot|ttf|otf|svg)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192,
              name: 'resource/[name].[ext]'
            }
          }
        ]
      },


    ]
  },
  plugins: [
    //处理html文件
    new HtmlWebpackPlugin({
      template: './src/index.html',
      favicon: './favicon.ico'
    }),
    //独立css文件
    new ExtractTextPlugin("css/main.css"),
    //提出公共模块
    new webpack.optimize.CommonsChunkPlugin({
      name: 'common',
      filename: 'js/base.js'
    })
  ],
  devServer: {
    port: 8086,
    historyApiFallback: {
        index: '/dist/index.html'
    },
    proxy : {
        '/manage' : {
            target: 'http://admintest.happymmall.com',
            changeOrigin : true
        },
        '/user/logout.do' : {
            target: 'http://admintest.happymmall.com',
            changeOrigin : true
        }
    }
}
};